// --------------------------------------------------------------------------------------------
// Version: MPL 1.1/GPL 2.0/LGPL 2.1
// 
// The contents of this file are subject to the Mozilla Public License Version
// 1.1 (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
// http://www.mozilla.org/MPL/
// 
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
// for the specific language governing rights and limitations under the
// License.
// 
// <remarks>
// Generated by IDLImporter from file nsINeighboringCellInfo.idl
// 
// You should use these interfaces when you access the COM objects defined in the mentioned
// IDL/IDH file.
// </remarks>
// --------------------------------------------------------------------------------------------
namespace Gecko
{
	using System;
	using System.Runtime.InteropServices;
	using System.Runtime.InteropServices.ComTypes;
	using System.Runtime.CompilerServices;
	
	
	/// <summary>
    ///This Source Code Form is subject to the terms of the Mozilla Public
    /// License, v. 2.0. If a copy of the MPL was not distributed with this file,
    /// You can obtain one at http://mozilla.org/MPL/2.0/. </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("0941cb79-36e5-41e0-b05f-cdb854c53f03")]
	public interface nsINeighboringCellIdsCallback
	{
		
		/// <summary>
        /// result is an array of nsINeighboringCellInfo.
        /// </summary>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void NotifyGetNeighboringCellIds(uint count, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] nsINeighboringCellInfo[] result);
		
		/// <summary>
        /// Callback function with error message.
        /// </summary>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void NotifyGetNeighboringCellIdsFailed([MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "Gecko.CustomMarshalers.AStringMarshaler")] nsAStringBase error);
	}
	
	/// <summary>nsINeighboringCellInfo </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("87dc222e-abb3-4342-95bf-626aa19fa20e")]
	public interface nsINeighboringCellInfo
	{
		
		/// <summary>
        /// Type of radio technology.
        ///
        /// Possible values: 'gsm', 'gprs', 'edge', 'umts', 'hsdpa', 'hsupa', 'hspa',
        /// 'hspa+' or null (unknown).
        /// </summary>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void GetNetworkTypeAttribute([MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "Gecko.CustomMarshalers.AStringMarshaler")] nsAStringBase aNetworkType);
		
		/// <summary>
        /// Mobile Location Area Code (LAC) for GSM networks.
        ///
        /// Possible ranges from 0x0000 to 0xffff.
        /// nsICellInfo.UNKNOWN_VALUE if the LAC is unknown.
        /// </summary>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		int GetGsmLocationAreaCodeAttribute();
		
		/// <summary>
        /// Mobile Cell ID for GSM networks.
        ///
        /// Possible ranges from 0x0000 to 0xffff.
        /// nsICellInfo.UNKNOWN_VALUE if the cell id is unknown.
        /// </summary>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		long GetGsmCellIdAttribute();
		
		/// <summary>
        /// Primary Scrambling Code (PSC) for WCDMA networks.
        ///
        /// Possible ranges from 0x0000 to 0x01ff.
        /// nsICellInfo.UNKNOWN_VALUE if the psc is unknown.
        /// </summary>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		int GetWcdmaPscAttribute();
		
		/// <summary>
        /// For GSM networks, signalStrength is the received rssi, ranging from 0 to 31.
        /// For WCDMA networks, signalStrength is the CPICH Received Signal Code Power,
        /// ranging from -120 to -25.
        ///
        /// nsICellInfo.UNKNOWN_VALUE if signalStrength is unknown.
        /// </summary>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		int GetSignalStrengthAttribute();
	}
}
